1. Field of the Invention
The present invention relates to a chip card comprising means for managing a virtual memory.
2. Description of Related Art
For about twenty years, the chip card has played a vital role in everyday life. The banking field is primarily interested in microcircuit cards; their main advantage is to reduce fraud. Pay TV and radiotelephone companies use them as means for generating keys that are used to encipher and decipher encrypted transmissions. To guarantee security, it was necessary to create a new integrated circuit architecture. Cards of the electronic purse type contain a sum of electronic money; other, so-called frequent-customer cards, offer their holders financial rewards.
Nowadays, devices related to microcircuit cards, and more particularly microprocessor cards, are usable in an increasingly large number of applications. At first, the operating system of the cards, i.e., the program located in ROM, could only handle one application. The operating system is written during the production of the microcircuit. By increasing the size of the program memory (ROM) and of the nonvolatile programmable memory (EPROM and EEPROM, and today FeRAM), the operating system can execute more functions. But the number of these functions is still limited by the size of the ROM. Moreover, the addition of another function into the ROM involves producing a new mask; this production is very expensive and is really only profitable when a large quantity of cards is involved.
One way to increase the number of these functions without touching the ROM memory consists of writing the executable program, and the data that allows it to run, into the programmable memory. It is thus possible to add additional functions to an operating system that initially has only a set number of functions. The patent application FR-A-2.748.134 describes a means for loading the program into the programmable memory. But the programmable memory is of limited size; once it is filled with a program, it is not possible to add functions. Moreover, the storage of this program takes away from the memory space intended for data in the programmable memory. The preceding method is used to correct certain defects in the program located in ROM or to add some other functions. If a card must run a program of very large size, the method described in this document can prove to be inadequate.
The object of the present invention is to solve this problem by proposing a method for loading and unloading the programmable memory as a function of the need for the programs and/or the applicative data, for an information processing device constituted by a card. Thus, it becomes possible for the latter to run very diverse applications, such as: electronic purse, banking application, GSM telephony or the health care application currently being tested in France. With the aid of the present invention, the applications just listed are virtually inside the card. The owner of the card has loaded them in advance; thus, the card is configured according to his specific needs.
The present invention also makes it possible to solve another problem. A user may need to simultaneously open the same application twice. The running of this application in an information processing device such as a card lasts a certain amount of time. To speed up the process, it is advantageous to be able to start a second running of the application before the end of the first. Thus, the same program is running twice, at the same time.
This object is achieved by the fact that the card is equipped with an operating system comprising at least three functions:
Loading of applicative information.
Unloadingof applicative information.
Execution of applicative information.
To acquire a new application, the card receives applicative information in its programmable memory and checks this data.
When a command for running an application is received by a reader cooperating with the card, the operating system of the card analyzes the contents of its memory and determines whether it is necessary to use the network to unload part of its memory, and/or reload-previously unloaded applicative information.
During the reloading of applicative information, the operating system of the card verifies that the information loaded has been validated by it in the past. This information is then processed.
The network may be considered to be an extension of the programmable memory of the card; the latter sends it what it cannot keep in its own memory. It verifies, during the reloading, that the information received from the network is in fact that which it had sent previously. The ROM of the card must have a mechanism for managing the programmable memory that allows it to load and run an unlimited number of applications. From then on, the sizes of the ROMs and programmable memories of the card are no longer a limitation on the number of executable applications, and there is no need to produce a new mask when applications are added.
In summary, the invention relates to a chip card comprising information processing means and main information storage means, characterized in that the processing means comprise:
means for detecting, during the operation of the card, that the main storage means contain a quantity of information such that the execution of an operation is not possible;
means for selecting, in the main storage means, a set of information to be unloaded, the unloading of which can release enough space in the main storage means to allow the execution of said operation;
means for unloading the set of information to be unloaded into secondary storage means, in the event that said secondary storage means do not contain this set of information to be unloaded.
The invention also relates to the associated method. Lastly, it relates to a protocol for communication between a chip card and a chip card reader, the card comprising information processing means and main information storage means, characterized in that it comprises the steps consisting in that:
the reader transmits to the card an order to execute an operation;
the card searches to see if it has enough space in the main storage means to execute this operation;
if so, the card executes this operation, then transmits an execution report to the reader;
if not, the card selects in the main storage means a set of information to be unloaded, the unloading of which can release enough space in the main storage means to allow the execution of this operation, then the card unloads the set of information to be unloaded into secondary storage means by transmitting an unloading order to the reader, in the event that these secondary storage means do not contain this set of information to be unloaded, then it executes said operation, then finally, transmits an execution report to the reader.